package com.dalanmao.application;

import android.app.Application;
import android.os.Build;

import com.dalanmao.crash.CrashHandler;
import com.dalanmao.utils.AppUtil;
import com.dalanmao.utils.LogUtil;
import com.dalanmao.utils.ScreenUtil;

public class MyApplication extends Application {

	private static MyApplication sInstance;

	public static MyApplication getInstance() {
		return sInstance;
	}

	@Override
	public void onCreate() {
		sInstance = this;
		
		//设置测试模式，Log日志输出
		LogUtil.isDebug = true;
		
		// 打印当前手机的配置信息
		printPhoneConf();

		// 为应用设置异常处理程序
		setCrashHander();

	}

	/**
	 * 在程序一运行的时候，打印当前手机的配置信息
	 */
	private void printPhoneConf() {
		LogUtil.i("当前应用的名称 ： " + AppUtil.getAppName(this));
		LogUtil.i("当前应用的包名 ： " + AppUtil.getAppPackageName(this));
		LogUtil.i("当前应用的可用内存 ：MaxMemory " + AppUtil.getAppMaxMemory() + " KB");
		LogUtil.i("当前应用的版本名称 ：VersionName "+AppUtil.getAppVersionName(this));
		LogUtil.i("当前应用的版本号 ：VersionCode "+AppUtil.getAppVersionCode(this));

		LogUtil.i("当前手机的版本号 ：Android " + Build.VERSION.RELEASE);
		LogUtil.i("当前手机的SDK版本 ：API " + Build.VERSION.SDK_INT);
		LogUtil.i("当前手机的型号 ：" + Build.MODEL);
		LogUtil.i("当前手机的制造商 ：" + Build.MANUFACTURER);
		LogUtil.i("当前手机的CPU架构 ：" + Build.CPU_ABI);
		
		LogUtil.i("当前手机屏幕密度  ：" + ScreenUtil.getScreenDensity(this));
		LogUtil.i("当前手机屏幕的 DPI ： " + ScreenUtil.getScreenDPI(this)+" dpi");
		LogUtil.i("当前手机屏幕的宽度  ：" + ScreenUtil.getScreenWidth(this)+" px");
		LogUtil.i("当前手机屏幕的高度  ：" + ScreenUtil.getScreenHeight(this)+" px");
		LogUtil.i("当前手机屏幕的状态栏高度  ： " + ScreenUtil.getStatusHeight(this)+" px");
		

	}

	/**
	 * 为应用设置异常处理程序
	 */
	private void setCrashHander() {
		// 在这里为应用设置异常处理程序，然后我们的程序才能捕获未处理的异常
		CrashHandler crashHandler = CrashHandler.getInstance();
		crashHandler.init(this);

	}

}
